Cucumber Features

Expand All

Collapse All

# language: pt
@login

Funcionalidade: Cadastrar filmes

Para que eu possa disponibilizar novos títulos no catálogo
Sendo um gestor de catálogo
Posso cadastrar um novo filmes

@newMoviefeatures/cadastro_filmes.feature:10

Esquema do Cenário: Novo filme O gestor de catálogo cadastra um novo filme através do formulário e um novo registro é inserido no catálogo Ninjaflix.

  1. Dado que <codigo> é um novo filme
    features/cadastro_filmes.feature:14
  2. Quando eu faço cadastro deste filme
    features/cadastro_filmes.feature:15
  3. Então devo ver o novo filme na lista
    features/cadastro_filmes.feature:16

Exemplos

Screenshot
 
Screenshot
 
Screenshot
 
codigo
"ultimato"
FATAL:  database "nflix" does not exist

./features/support/libs/Database.rb:6:in `initialize'
./features/step_definitions/movies_steps.rb:4:in `new'
./features/step_definitions/movies_steps.rb:4:in `"que {string} é um novo filme"'
features/cadastro_filmes.feature:20:in `Dado que "ultimato" é um novo filme'
features/cadastro_filmes.feature:14:in `Dado que <codigo> é um novo filme'
"spider"
FATAL:  database "nflix" does not exist

./features/support/libs/Database.rb:6:in `initialize'
./features/step_definitions/movies_steps.rb:4:in `new'
./features/step_definitions/movies_steps.rb:4:in `"que {string} é um novo filme"'
features/cadastro_filmes.feature:21:in `Dado que "spider" é um novo filme'
features/cadastro_filmes.feature:14:in `Dado que <codigo> é um novo filme'
"jocker"
FATAL:  database "nflix" does not exist

./features/support/libs/Database.rb:6:in `initialize'
./features/step_definitions/movies_steps.rb:4:in `new'
./features/step_definitions/movies_steps.rb:4:in `"que {string} é um novo filme"'
features/cadastro_filmes.feature:22:in `Dado que "jocker" é um novo filme'
features/cadastro_filmes.feature:14:in `Dado que <codigo> é um novo filme'
@attemptMoviefeatures/cadastro_filmes.feature:25

Esquema do Cenário: Campos obrigatórios O gestor de catalogos tenta cadastrar um novo filme, mas esquece de preencher um dos campos que são obrigatórios, em seguida, o sistema exibe uma notificação para o usuário.

  1. Dado que <codigo> é um novo filme
    features/cadastro_filmes.feature:30
  2. Quando eu faço cadastro deste filme
    features/cadastro_filmes.feature:31
  3. Então devo ver a notificação <texto>
    features/cadastro_filmes.feature:32

Exemplos

Screenshot
 
Screenshot
 
Screenshot
 
Screenshot
 
codigo
texto
"noTitle"
"Oops - Filme sem titulo. Pode isso Arnaldo?"
FATAL:  database "nflix" does not exist

./features/support/libs/Database.rb:6:in `initialize'
./features/step_definitions/movies_steps.rb:4:in `new'
./features/step_definitions/movies_steps.rb:4:in `"que {string} é um novo filme"'
features/cadastro_filmes.feature:36:in `Dado que "noTitle" é um novo filme'
features/cadastro_filmes.feature:30:in `Dado que <codigo> é um novo filme'
"noStatus"
"Oops - O status deve ser informado!"
FATAL:  database "nflix" does not exist

./features/support/libs/Database.rb:6:in `initialize'
./features/step_definitions/movies_steps.rb:4:in `new'
./features/step_definitions/movies_steps.rb:4:in `"que {string} é um novo filme"'
features/cadastro_filmes.feature:37:in `Dado que "noStatus" é um novo filme'
features/cadastro_filmes.feature:30:in `Dado que <codigo> é um novo filme'
"noYear"
"Oops - Faltou o ano de lançamento também!"
FATAL:  database "nflix" does not exist

./features/support/libs/Database.rb:6:in `initialize'
./features/step_definitions/movies_steps.rb:4:in `new'
./features/step_definitions/movies_steps.rb:4:in `"que {string} é um novo filme"'
features/cadastro_filmes.feature:38:in `Dado que "noYear" é um novo filme'
features/cadastro_filmes.feature:30:in `Dado que <codigo> é um novo filme'
"noRealeaseDate"
"Oops - Quase lá, só falta a data de estréia!"
FATAL:  database "nflix" does not exist

./features/support/libs/Database.rb:6:in `initialize'
./features/step_definitions/movies_steps.rb:4:in `new'
./features/step_definitions/movies_steps.rb:4:in `"que {string} é um novo filme"'
features/cadastro_filmes.feature:39:in `Dado que "noRealeaseDate" é um novo filme'
features/cadastro_filmes.feature:30:in `Dado que <codigo> é um novo filme'
@dupMoviefeatures/cadastro_filmes.feature:42

Cenário: Duplicado O gestor de catálogo tenta cadastrar um filme, porém o título já foi cadastrado em outro momento e o sistema notifica o usuário informando que o título já existe.

  1. Dado que "deadpool2" é um novo filme
    features/step_definitions/movies_steps.rb:1
    FATAL:  database "nflix" does not exist
     (PG::ConnectionBad)
    ./features/support/libs/Database.rb:6:in `initialize'
    ./features/step_definitions/movies_steps.rb:4:in `new'
    ./features/step_definitions/movies_steps.rb:4:in `"que {string} é um novo filme"'
    features/cadastro_filmes.feature:47:in `Dado que "deadpool2" é um novo filme'
    4  def initialize
    5    # implementação para conexão ao banco de dados
    6    @dbConnection = PG.connect(CONFIG["database"])
    7  end
    8
    9# gem install syntax to get syntax highlighting
  2. Mas este filme já existe no catálogo
    features/step_definitions/movies_steps.rb:7
  3. Quando eu faço cadastro deste filme
    features/step_definitions/movies_steps.rb:11
  4. Então devo ver a notificação "Oops - Este titulo já existe no Ninjaflix."
    features/step_definitions/movies_steps.rb:22
  5. Screenshot
     
# language: pt

Funcionalidade: Login

Para que eu possa gerenciar os filmes do catalogo ninjaflix
Sendo um usuário previamente cadastrado
Posso acessar o sistema com o meu e-mail e senha

@loginSuccessfeatures/login.feature:9

Cenario: Acesso

  1. Quando eu faço o login com "tony@stark.com" e "pwd123"
    features/step_definitions/login_steps.rb:1
  2. Então devo ser autenticado
    features/step_definitions/login_steps.rb:6
    undefined method `length' for nil:NilClass (NoMethodError)
    ./features/step_definitions/login_steps.rb:7:in `"devo ser autenticado"'
    features/login.feature:11:in `Então devo ser autenticado'
    5
    6Então("devo ser autenticado") do
    7  expect(getToken.length).to be 147
    8end
    9
    10# gem install syntax to get syntax highlighting
  3. E devo ver "Tony Stark" na area logada
    features/step_definitions/login_steps.rb:10
  4. Screenshot
     
@loginUnsuccessfullyfeatures/login.feature:15

Esquema do Cenario: Login sem sucesso

  1. Quando eu faço o login com <email> e <senha>
    features/login.feature:16
  2. Então não devo ser autenticado
    features/login.feature:17
  3. E devo ver a mensagem de alerta <texto>
    features/login.feature:18

Exemplos

Screenshot
 
Screenshot
 
Screenshot
 
Failed to decode response from marionette (Selenium::WebDriver::Error::UnknownError)
./features/support/hooks.rb:30:in `After'
28  #  end
29
30  tempShot = page.save_screenshot("log/temp_shot.png")
31
32  # converte a screenshot para o formato base64
33# gem install syntax to get syntax highlighting
Tried to run command without establishing a connection (Selenium::WebDriver::Error::InvalidSessionIdError)
-1# Couldn't get snippet for 
0# gem install syntax to get syntax highlighting
email
senha
texto
"tony@stark.com"
"abc123"
"Usuário e/ou senha inválidos"
Unable to find visible css ".alert"
./features/support/pages/LoginPage.rb:16:in `alertMessage'
./features/step_definitions/login_steps.rb:22:in `"devo ver a mensagem de alerta {string}"'
features/login.feature:22:in `E devo ver a mensagem de alerta "Usuário e/ou senha inválidos"'
features/login.feature:18:in `E devo ver a mensagem de alerta <texto>'
"404@yahoo.com"
"abc123"
"Usuário e/ou senha inválidos"
Unable to find visible css ".alert"
./features/support/pages/LoginPage.rb:16:in `alertMessage'
./features/step_definitions/login_steps.rb:22:in `"devo ver a mensagem de alerta {string}"'
features/login.feature:23:in `E devo ver a mensagem de alerta "Usuário e/ou senha inválidos"'
features/login.feature:18:in `E devo ver a mensagem de alerta <texto>'
""
"abc123"
"Opps. Cadê o email?"
"teste@gmail.com"
""
"Opps. Cadê a senha?"
Browsing context has been discarded
WebDriverError@chrome://marionette/content/error.js:175:5
NoSuchWindowError@chrome://marionette/content/error.js:409:5
assert.that/<@chrome://marionette/content/assert.js:428:13
assert.open@chrome://marionette/content/assert.js:183:72
GeckoDriver.prototype.findElements@chrome://marionette/content/driver.js:2087:22
despatch@chrome://marionette/content/server.js:305:40
execute@chrome://marionette/content/server.js:275:16
onPacket/<@chrome://marionette/content/server.js:248:20
onPacket@chrome://marionette/content/server.js:249:9
_onJSONObjectReady/<@chrome://marionette/content/transport.js:501:20
./features/support/pages/LoginPage.rb:9:in `loginInPage'
./features/step_definitions/login_steps.rb:3:in `"eu faço o login com {string} e {string}"'
features/login.feature:25:in `Quando eu faço o login com "teste@gmail.com" e ""'
features/login.feature:16:in `Quando eu faço o login com <email> e <senha>'
# language: pt
@removeMovie @login

Funcionalidade: Remover filme

Para que eu possa manter o catálogo atualizado
Sendo um gestor de catálogo que encontrou um título cancelado/indesejado
Posso remover este item

@removeMoviefeatures/remover_filmes.feature:10

Cenário: Confirmar exclusão

Tried to run command without establishing a connection (Selenium::WebDriver::Error::InvalidSessionIdError)
./features/support/hooks.rb:10:in `Before'
8  # page.driver.browser.manage.window.maximize
9
10  page.current_window.resize_to(1440, 900)
11end
12
13# gem install syntax to get syntax highlighting
Tried to run command without establishing a connection (Selenium::WebDriver::Error::InvalidSessionIdError)
./features/support/pages/LoginPage.rb:4:in `goToApplication'
./features/support/hooks.rb:18:in `Before'
2  # método para visitar a página raiz do projeto (login)
3  def goToApplication
4    visit "/"
5  end
6
7# gem install syntax to get syntax highlighting
  1. Dado que "dbz" está no catálogo
    features/step_definitions/movies_steps.rb:27
  2. Quando eu solicito a exclusão
    features/step_definitions/movies_steps.rb:34
  3. E eu confirmo a solicitação
    features/step_definitions/movies_steps.rb:38
  4. Então este item deve ser removido do catálogo
    features/step_definitions/movies_steps.rb:42
  5. Tried to run command without establishing a connection (Selenium::WebDriver::Error::InvalidSessionIdError)
    ./features/support/hooks.rb:30:in `After'
    28  #  end
    29
    30  tempShot = page.save_screenshot("log/temp_shot.png")
    31
    32  # converte a screenshot para o formato base64
    33# gem install syntax to get syntax highlighting
    Tried to run command without establishing a connection (Selenium::WebDriver::Error::InvalidSessionIdError)
    -1# Couldn't get snippet for 
    0# gem install syntax to get syntax highlighting
@cancelRemovefeatures/remover_filmes.feature:17

Cenário: Cancelar exclusão

Tried to run command without establishing a connection (Selenium::WebDriver::Error::InvalidSessionIdError)
./features/support/hooks.rb:10:in `Before'
8  # page.driver.browser.manage.window.maximize
9
10  page.current_window.resize_to(1440, 900)
11end
12
13# gem install syntax to get syntax highlighting
Tried to run command without establishing a connection (Selenium::WebDriver::Error::InvalidSessionIdError)
./features/support/pages/LoginPage.rb:4:in `goToApplication'
./features/support/hooks.rb:18:in `Before'
2  # método para visitar a página raiz do projeto (login)
3  def goToApplication
4    visit "/"
5  end
6
7# gem install syntax to get syntax highlighting
  1. Dado que "tenThings" está no catálogo
    features/step_definitions/movies_steps.rb:27
  2. Quando eu solicito a exclusão
    features/step_definitions/movies_steps.rb:34
  3. Mas cancelo a solicitação
    features/step_definitions/movies_steps.rb:46
  4. Então este item deve permanecer no catálogo
    features/step_definitions/movies_steps.rb:50
  5. Tried to run command without establishing a connection (Selenium::WebDriver::Error::InvalidSessionIdError)
    ./features/support/hooks.rb:30:in `After'
    28  #  end
    29
    30  tempShot = page.save_screenshot("log/temp_shot.png")
    31
    32  # converte a screenshot para o formato base64
    33# gem install syntax to get syntax highlighting
    Tried to run command without establishing a connection (Selenium::WebDriver::Error::InvalidSessionIdError)
    -1# Couldn't get snippet for 
    0# gem install syntax to get syntax highlighting